package com.originskyseed.platform.user.model;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.originskyseed.platform.core.base.BaseModel;

/**
 * 部门表（OSI_DEPT）
 * 
 * @author Tangwanghui
 */
public class Dept extends BaseModel {

	/**
	 * 名称（NAME）
	 */
	private String name;

	/**
	 * code（CODE）
	 */
	private String code;

	/**
	 * 父级code（PARENT_CODE）
	 */
	private String parentCode;

	/**
	 * 负责人id,多个用逗号分隔（LEDER_ID）
	 */
	private String lederId;

	/**
	 * 负责人名称（LEDER_NAME）
	 */
	private String lederName;

	/**
	 * 类型 1总裁、2体系、3分公司/频道、4部门、5事业厅、6小组（TYPE）
	 */
	private Integer type;

	/**
	 * 来源 1 内容类/家族 2 推广类/公会 3 合作类（SOURCE_SYS）
	 */
	private Integer sourceSys;

	/**
	 * 第三方平台账号（OTHER_ACCOUNT）
	 */
	private String otherAccount;

	/**
	 * 优先级（PRIORITY）
	 */
	private Integer priority;

	/**
	 * 创建人id（CREATOR_ID）
	 */
	private String creatorId;

	/**
	 * 创建人（CREATOR）
	 */
	private String creator;

	/**
	 * 状态 0 禁用 1 置顶
	 */
	private Integer status;

	/**
	 * 是否删除 1是 2否（IS_DEL）
	 */
	private Integer isDel;

	/**
	 * 是否置顶（1 是 0 否）
	 */
	private Integer isTop;

	/**
	 * 置顶时间
	 */
	private Date topTime;

	/**
	 * 内荐码首字母
	 */
	private String recommendInitial;

	//// 额外字段
	// 子部门
	private List<Dept> deptList;

	// 员工数量
	private Integer userNum;

	// 子部门名称
	private String sonDeptName;

	// 业务范畴
	private String businessScope;

	// 业务范畴名称
	private String businessScopeName;

	// 是否新增
	private Integer isInsert;


	//////////////// 额外字段
	// 成本
	private BigDecimal basePay;

	// 目标kpi值
	private BigDecimal targetKpi;

	// 完成kpi值
	private BigDecimal completeKpi;

	// 完成进度
	private BigDecimal completeSchedule;

	// 剩余kpi值
	private BigDecimal surplusKpi;

	// 月kpi目标值
	private BigDecimal monthTargetKpi;

	// 月kpi完成值
	private BigDecimal monthCompleteKpi;

	/**
	 * 等级体系id
	 */
	private String systemId;

	/**
	 * 等级体系名称
	 */
	private String systemName;

	/**
	 * 获取名称
	 *
	 * @return
	 */
	public String getName() {
		return this.name;
	}

	/**
	 * 设置名称
	 *
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取code
	 *
	 * @return
	 */
	public String getCode() {
		return this.code;
	}

	/**
	 * 设置code
	 *
	 * @param code
	 */
	public void setCode(String code) {
		this.code = code;
	}

	/**
	 * 获取父级code
	 *
	 * @return
	 */
	public String getParentCode() {
		return this.parentCode;
	}

	/**
	 * 设置父级code
	 *
	 * @param parentCode
	 */
	public void setParentCode(String parentCode) {
		this.parentCode = parentCode;
	}

	/**
	 * 获取负责人id,多个用逗号分隔
	 *
	 * @return
	 */
	public String getLederId() {
		return this.lederId;
	}

	/**
	 * 设置负责人id,多个用逗号分隔
	 *
	 * @param lederId
	 */
	public void setLederId(String lederId) {
		this.lederId = lederId;
	}

	/**
	 * 获取负责人名称
	 *
	 * @return
	 */
	public String getLederName() {
		return this.lederName;
	}

	/**
	 * 设置负责人名称
	 *
	 * @param lederName
	 */
	public void setLederName(String lederName) {
		this.lederName = lederName;
	}

	/**
	 * 获取类型 1总裁、2体系、3分公司/频道、4部门、5事业厅、6小组
	 *
	 * @return
	 */
	public Integer getType() {
		return this.type;
	}

	/**
	 * 设置类型 1总裁、2体系、3分公司/频道、4部门、5事业厅、6小组
	 *
	 * @param type
	 */
	public void setType(Integer type) {
		this.type = type;
	}

	/**
	 * 获取来源 推广类/公会、2内容类/家族、3合作类
	 *
	 * @return
	 */
	public Integer getSourceSys() {
		return this.sourceSys;
	}

	/**
	 * 设置来源 推广类/公会、2内容类/家族、3合作类
	 *
	 * @param sourceSys
	 */
	public void setSourceSys(Integer sourceSys) {
		this.sourceSys = sourceSys;
	}

	/**
	 * 获取第三方平台账号
	 *
	 * @return
	 */
	public String getOtherAccount() {
		return this.otherAccount;
	}

	/**
	 * 设置第三方平台账号
	 *
	 * @param otherAccount
	 */
	public void setOtherAccount(String otherAccount) {
		this.otherAccount = otherAccount;
	}

	public Integer getPriority() {
		return priority;
	}

	public void setPriority(Integer priority) {
		this.priority = priority;
	}

	/**
	 * 获取创建人id
	 *
	 * @return
	 */
	public String getCreatorId() {
		return this.creatorId;
	}

	/**
	 * 设置创建人id
	 *
	 * @param creatorId
	 */
	public void setCreatorId(String creatorId) {
		this.creatorId = creatorId;
	}

	/**
	 * 获取创建人
	 *
	 * @return
	 */
	public String getCreator() {
		return this.creator;
	}

	/**
	 * 设置创建人
	 *
	 * @param creator
	 */
	public void setCreator(String creator) {
		this.creator = creator;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	/**
	 * 获取是否删除 1是 2否
	 *
	 * @return
	 */
	public Integer getIsDel() {
		return this.isDel;
	}

	/**
	 * 设置是否删除 1是 2否
	 *
	 * @param isDel
	 */
	public void setIsDel(Integer isDel) {
		this.isDel = isDel;
	}

	public Integer getIsTop() {
		return isTop;
	}

	public void setIsTop(Integer isTop) {
		this.isTop = isTop;
	}

	public Date getTopTime() {
		return topTime;
	}

	public void setTopTime(Date topTime) {
		this.topTime = topTime;
	}

	public List<Dept> getDeptList() {
		return deptList;
	}

	public void setDeptList(List<Dept> deptList) {
		this.deptList = deptList;
	}

	public Integer getUserNum() {
		return userNum;
	}

	public void setUserNum(Integer userNum) {
		this.userNum = userNum;
	}

	public String getSonDeptName() {
		return sonDeptName;
	}

	public void setSonDeptName(String sonDeptName) {
		this.sonDeptName = sonDeptName;
	}

	public String getBusinessScope() {
		return businessScope;
	}

	public void setBusinessScope(String businessScope) {
		this.businessScope = businessScope;
	}

	public String getBusinessScopeName() {
		return businessScopeName;
	}

	public void setBusinessScopeName(String businessScopeName) {
		this.businessScopeName = businessScopeName;
	}

	public Integer getIsInsert() {
		return isInsert;
	}

	public void setIsInsert(Integer isInsert) {
		this.isInsert = isInsert;
	}

	public String getRecommendInitial() {
		return recommendInitial;
	}

	public void setRecommendInitial(String recommendInitial) {
		this.recommendInitial = recommendInitial;
	}

	public BigDecimal getBasePay() {
		return basePay;
	}

	public void setBasePay(BigDecimal basePay) {
		this.basePay = basePay;
	}

	public BigDecimal getTargetKpi() {
		return targetKpi;
	}

	public void setTargetKpi(BigDecimal targetKpi) {
		this.targetKpi = targetKpi;
	}

	public BigDecimal getCompleteKpi() {
		return completeKpi;
	}

	public void setCompleteKpi(BigDecimal completeKpi) {
		this.completeKpi = completeKpi;
	}

	public BigDecimal getCompleteSchedule() {
		return completeSchedule;
	}

	public void setCompleteSchedule(BigDecimal completeSchedule) {
		this.completeSchedule = completeSchedule;
	}

	public BigDecimal getSurplusKpi() {
		return surplusKpi;
	}

	public void setSurplusKpi(BigDecimal surplusKpi) {
		this.surplusKpi = surplusKpi;
	}

	public BigDecimal getMonthTargetKpi() {
		return monthTargetKpi;
	}

	public void setMonthTargetKpi(BigDecimal monthTargetKpi) {
		this.monthTargetKpi = monthTargetKpi;
	}

	public BigDecimal getMonthCompleteKpi() {
		return monthCompleteKpi;
	}

	public void setMonthCompleteKpi(BigDecimal monthCompleteKpi) {
		this.monthCompleteKpi = monthCompleteKpi;
	}

	public String getSystemId() {
		return systemId;
	}

	public void setSystemId(String systemId) {
		this.systemId = systemId;
	}

	public String getSystemName() {
		return systemName;
	}

	public void setSystemName(String systemName) {
		this.systemName = systemName;
	}

	@Override
	public String toString() {
		return "Dept{" +
				"name='" + name + '\'' +
				", code='" + code + '\'' +
				", parentCode='" + parentCode + '\'' +
				", lederId='" + lederId + '\'' +
				", lederName='" + lederName + '\'' +
				", type=" + type +
				", sourceSys=" + sourceSys +
				", otherAccount='" + otherAccount + '\'' +
				", priority=" + priority +
				", creatorId='" + creatorId + '\'' +
				", creator='" + creator + '\'' +
				", status=" + status +
				", isDel=" + isDel +
				", isTop=" + isTop +
				", topTime=" + topTime +
				", recommendInitial='" + recommendInitial + '\'' +
				", deptList=" + deptList +
				", userNum=" + userNum +
				", sonDeptName='" + sonDeptName + '\'' +
				", businessScope='" + businessScope + '\'' +
				", businessScopeName='" + businessScopeName + '\'' +
				", isInsert=" + isInsert +
				", basePay=" + basePay +
				", targetKpi=" + targetKpi +
				", completeKpi=" + completeKpi +
				", completeSchedule=" + completeSchedule +
				", surplusKpi=" + surplusKpi +
				", monthTargetKpi=" + monthTargetKpi +
				", monthCompleteKpi=" + monthCompleteKpi +
				'}';
	}
}